﻿
#ifndef ONEGIS_PSDE_DATASOURCE_IC_FILEOPCLASS_H
#define ONEGIS_PSDE_DATASOURCE_IC_FILEOPCLASS_H

#include <memory>
#include "libengine.h"
#include "PbFormatData.pb.h"

using namespace onegis::protobuf::model;


namespace onegis {
namespace psde {
namespace datasource {

class LIBENGINE_API IC_FileOpClass
{
public:
    virtual ~IC_FileOpClass() {};

    /* 上传单文件数据 */
    virtual bool upload(const std::string &filePath, PbResponseResult &response) = 0;
    
    /* 上传多文件数据 */
    virtual bool upload(const std::list<std::string> &filePathList, PbResponseResult &response) =0;

    /* 下载数据文件 */
    virtual bool download( const std::string &DataStoreFileUrl, const std::string &outputFile, PbResponseResult &response) = 0;

    /* 设置进度回调函数 */
    virtual void setProgressCallBack(ProgressCallBackPTR callback, void *p) = 0;
};

typedef std::tr1::shared_ptr<IC_FileOpClass> FileOpClassPtr;


}
}
}
#endif
